Во-первых, измерьте время, прошедшее между посылкой октета данных, имеющего некий определенный номер в очереди, и получение подтверждения, указывающего наряду с другими и на этот номер (посылаемые сегменты не обязаны соответствовать полученным сегментам).
Измеренная временная задержка - это время обращения (Round Trip Time – RTT). Следующий шаг - вычисление усредненного времени обращения (Smoothed Round Trip Time - SRTT):
SRTT = (ALPHA * RSTT) + ( (1-ALPHA) * RTT)
Затем с помощью найденного значения определяется контрольное время повторной посылки (Retransmission Timeout – RTO):
RTO = min[ UBOUND, max[ LBOUND, (BETA * SRTT) ]]
где UBOUND - верхний предел контрольного времени (например, 1 мин), LBOUND - нижний предел (например, 1 сек). ALPHA - фактор сглаживания (например, от 0.8 до 0.9), а BETA - фактор изменения задержки (например, от 1.3 до 2.0).